# SQL SERVER2017 # 目录 [SQL SERVER2017 1](#sql-server2017) [第一章 SQL SERVER基础 3](#第一章-sql-server基础) > [1.1 系统数据库 3](#系统数据库) > > [1.1.1 master数据库 3](#_Toc4333712) > > [1.1.2 model数据库 3](#model数据库) > > [1.1.3 msdb数据库 4](#msdb数据库) > > [1.1.4 tempdb数据库 4](#tempdb数据库) > > [1.1.5 resource数据库 4](#resource数据库) # 第一章 SQL SERVER基础 ## 1.1 系统数据库 SQL SERVER2017在安装时就包含了几个系统数据库。用于储存数据库系统相关的信息。 ### [master数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/master-database?view=sql-server-2017) **master**是整个SQL SERVER最重要的数据库。如果master数据库不可用,则SQL SERVER无法启动。 **master** 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。 在 SQL Server中,系统对象不再存储在 **master** 数据库中,而是存储在 [Resource 数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/resource-database?view=sql-server-2017)中。 此外, **master** 数据库还记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server的初始化信息。 ### 1.1.2 [model数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/model-database?view=sql-server-2017) Model数据库是SQL SERVER新建数据库的模板,创建新的数据库时,model数据库的全部内容会被复制到新的数据库中。由于SQL SERVER每次重新启动都会重建tempdb数据库,因此,model数据库必须始终存在于 SQL Server 系统中。 如果修改**model** 数据库,之后创建的所有数据库都将继承这些修改。 ### 1.1.3 [msdb数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/msdb-database?view=sql-server-2017) 代理使用msdb数据库用于计划警报和作业。SQL Server Management Studio、 Service Broker 和数据库邮件等其他功能也使用该数据库。 当安装或升级 SQL Server 时,只要使用 Setup.exe 重新生成系统数据库, **msdb** 的恢复模式便会自动设置为简单。 ### 1.1.4 [tempdb数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/tempdb-database?view=sql-server-2017) Tempdb用于整个SQL Server,供所有连接到SQLserver的用户使用。每次sqlserver重启时都会重建tempdb。tempdb 用于保留: ·显式创建的临时用户对象,例如:全局或局部临时表及索引、临时存储过程、表变量、表值函数返回的表或游标。 ·由数据库引擎创建的内部对象。 其中包括: ·用于储存假脱机、游标、排序和临时大型对象 (LOB) 存储的中间结果的工作表。 ·用于哈希联接或哈希聚合操作的工作文件。 ·用于创建或重新生成索引等操作(如果指定了 SORT\_IN\_TEMPDB)的中间排序结果,或者某些 GROUP BY、ORDER BY 或 UNION 查询的中间排序结果。 ### 1.1.5 [resource数据库](https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/resource-database?view=sql-server-2017) Resource数据库在SSMS中是不可见的。为只读数据库,它包含了 SQL Server中的所有系统对象。 SQL Server 系统对象(如 sys.objects)在物理上保留在 Resource 数据库中,但在逻辑上却显示在每个数据库的 sys 架构中。 Resource 数据库不包含用户数据或用户元数据。